home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / packet / p_tapr / 117notes / softdisk.117 < prev   
Text File  |  1990-03-10  |  32KB  |  857 lines

  1. TAPR TNC 2 Software Release Notes ............ Release 1.1.7
  2.  
  3.  
  4. The correct sign-on message for this release of TNC 2  soft-
  5. ware is:
  6.  
  7.      Tucson Amateur Packet Radio TNC 2
  8.      AX.25 Level 2 Version 2.0
  9.      Release 1.1.7   2/11/90 - 32K RAM
  10.      Checksum $51
  11.      cmd:
  12.  
  13. TAPR  TNC2  Software Release 1.1.7 is a major  release  with
  14. numerous enhancements.
  15.  
  16. Significant changes and enhancements include:
  17.  
  18. Prioritized Acknowledgment (PriACK) protocol due to N7CL.
  19.  
  20. Improved channel access methods (similar to "persistence").
  21.  
  22. Better  compatibility when running AX25 V1 (T3 may  be  dis-
  23. abled).
  24.  
  25. A filter to inhibit monitoring of NET/ROM, ROSE, TCP/IP  and
  26. other networking packets.
  27.  
  28. Improved  transmit  timers  (time-  and/or  character-based)
  29. along with quick-release of PTT at the end of a frame.
  30.  
  31. Pre-frame  sync  of  zeroes rather than  flags  for  reduced
  32. TXDELAY (the other station can lock on to your transmissions
  33. faster).
  34.  
  35. No dead-time between frames in a multi-frame transmission.
  36.  
  37. Improved  KISS  operation in full duplex  for  MicroSat  and
  38. other applications.
  39.  
  40. Improved buffer-full handling over normal AX.25 practice for
  41. less channel congestion.
  42.  
  43. Improved modem demodulator calibration facilities.
  44.  
  45. Additional error (Health) counters.
  46.  
  47. Finally,  the  locations of the default  parameters  in  the
  48. EPROM, and their format, will be documented for those of you
  49. who  prefer  a custom EPROM rather than trusting  bbRAM  for
  50. remote site locations.
  51.  
  52. Summary of New Commands and Messages
  53.  
  54. New defaults since 1.1.6
  55.  
  56.      CHECK    12
  57.      DWAIT    33
  58.      FRACK     8
  59.      RESPTIME  0
  60.      SCREENLN  0
  61.      TXDELAY  33
  62.  
  63. New commands since 1.1.6
  64.  
  65.      ACKPRIOR  ON
  66.      ACKTIME   14
  67.      CHECKV1   OFF
  68.      DEADTIME  33
  69.      FIRMRNR   OFF
  70.      MNONAX25  OFF
  71.      RXCAL          (immediate command)
  72.      SLOTS     3
  73.      STATUS         (immediate command)
  74.      TXDELAYC  2
  75.  
  76. New Health counters since 1.1.6
  77.  
  78.      ASYFRERR
  79.      ASYQOVER
  80.      RCVDRNR
  81.      RXABORT
  82.      RXLENERR
  83.      RXRESYNC
  84.      SENTRNR
  85.  
  86. Other changes
  87.  
  88. A "diddling" TXDELAY/TXDELAYC interval replaces the familiar
  89. "flagging"  keyup  time.   Zeroes  are  sent  for   TXDELAY,
  90. followed by the number of flags specified in TXDELAYC.
  91.  
  92. RS-232 characters with framing errors are ignored.
  93.  
  94. DAYTIME should be much more accurate.
  95.  
  96. Protocol handling fixes, and many smaller fixes to  numerous
  97. to detail.
  98.  
  99. Complaints welcome, via mail or CIS only, to:
  100.  
  101.                      Howard Goldstein N2WX
  102.                      5201-23rd Ave N
  103.                      St. Petersburg, FL 33710-5174
  104.                      USA
  105.  
  106.                      CIS:  75006,702
  107.  
  108.  
  109. NOTE:   TNC 2 SOFTWARE SOURCE CODE and TNC FIRMWARE
  110.                    Copyright (c) 1985-1990
  111.                            Systek
  112.                     All rights reserved.
  113.  
  114. Reproduction  or translation of any part of this work beyond
  115. that  permitted by Sections 107 or 108  of  the 1976  United
  116. States  Copyright Act (or its legal successor)  without  the
  117. express  permission  of  the  copyright  owner  is  unlawful
  118. except as noted below.   Requests for permission to copy  or
  119. for further information should be addressed to:
  120.  
  121.                 Tucson Amateur Packet Radio
  122.                         PO Box 12925
  123.                       Tucson AZ  85732
  124.                     ATTN TNC 2 SOFTWARE
  125.  
  126.  
  127. ACkprior ON|OFF                     Default: ON
  128.                                            Display Group: L
  129.  
  130. Parameters:
  131.  
  132.      ON        Enables Prioritized acknowledgments.
  133.  
  134.      OFF       Acknowledgments have the same priority as any
  135.                other frames on the channel.
  136.  
  137. When  ACKPRIOR is ON, acknowledgments have  priority.   This
  138. means  that  is  your  TNC receives a  frame  that  it  must
  139. acknowledge  (ACK), it will immediately send the ACK if  the
  140. channel  is  clear.   If other  stations  are  running  with
  141. ACKPRIOR ON, they will not access the channel until you have
  142. had a chance to send the ACK, even if they cannot hear  your
  143. transmissions.
  144.  
  145. When OFF, acknowledgments are queued up for transmission the
  146. same as any other frame.
  147.  
  148.  
  149.  
  150. ACKTime n                         Default: 14
  151.                                            Display Group: T
  152.  
  153. Parameters:
  154.  
  155.      n         0-250 in 10 mSec increments.
  156.  
  157. ACKTIME  specifies  the time required to send an RR  or  RNR
  158. response  frame  (an acknowledgment) to an I  frame  at  the
  159. radio port data rate.  This corresponds to about 510 mSec at
  160. 1200  bps with 8 digipeaters and about 140 mSec at 1200  bps
  161. with  no  digipeaters.  The default of 140  mSec  (ACKT  14)
  162. allows for no digipeaters.
  163.  
  164.  
  165.  
  166. CHECKV1 ON|OFF                    Default: OFF
  167.                                           Display Group: T
  168.  
  169. Parameters:
  170.  
  171.      ON        Enables  CHECKtime  (T3) when  running  AX.25
  172.                Level  2  Version 1.0  protocol.   This  will
  173.                result   in  an  automatic  disconnect   when
  174.                packets  haven't flowed between this TNC  and
  175.                the  remote  TNC for CHECKtime.   See  CHECK,
  176.                above.
  177.  
  178.      OFF       Disables   the  CHECKtime  timer   (T3)   and
  179.                requires   the   operator   to   initiate   a
  180.                disconnect  sequence.  This is in  accordance
  181.                with AX.25 Level 2 Version 1.0 procedures.
  182.  
  183. When  ON,  the  CHECK (T3) timer is  used  to  automatically
  184. disconnect  an  AX.25  Level 2 Version 1.0  link  when  data
  185. hasn't  flowed for CHECK time.  Note that T3 is not  defined
  186. for Version 1.0 operation.  See CHECK, above.
  187.  
  188. When  OFF, T3 is ignored and normal Version  1.0  procedures
  189. apply.
  190.  
  191. NOTE:     Many operators prefer using Version 1.0  protocol,
  192.           especially on marginal or noisy links in order  to
  193.           eliminate  some of the overhead of AX.25  Level  2
  194.           Version 2.0 protocol.
  195.  
  196.  
  197.  
  198. FIRMRnr ON|OFF                     Default: ON
  199.                                            Display Group: L
  200.  
  201. Parameters:
  202.  
  203.      ON        When this TNC's buffers fill, an RNR is sent.
  204.                When  the buffers are no longer full,  an  RR
  205.                command frame is sent.
  206.  
  207.                When  this TNC receives an RNR, it  will  not
  208.                poll  the sending TNC until [T0*10  seconds].
  209.                T0 = CHECKtime*8 unless CHECKtime*8 is <30 or
  210.                >253 in which case T0 = 12.
  211.  
  212.      OFF       When this TNC's buffers fill, an RNR is  sent
  213.                as a response to an I frame.
  214.  
  215.                When this TNC receives an RNR, it will resend
  216.                the data every FRACKtime (T1) until an RR  is
  217.                received.
  218.  
  219. When  OFF,  standard  AX.25 Level  2  Version  2.0  protocol
  220. procedures are used.  If a TNC sending data receives an RNR,
  221. meaning the remote TNC cannot accept more data, the  sending
  222. TNC will continuously re-send the data every T1 (FRACK) time
  223. until an RR is received, meaning the remote TNC accepted the
  224. data.   This often results in a lot of  unnecessary  channel
  225. congestion.
  226.  
  227. When  FIRMRNR  is ON, this TNC will stop sending  data  upon
  228. receipt  of an RNR.  If the remote TNC does not send  an  RR
  229. before  [T0] (see above), this TNC will poll the remote  TNC
  230. to  be sure it is still active.  If this TNC sent  the  RNR,
  231. then  it  will send an RR when its buffers have  cleared  to
  232. allow more data to be received.
  233.  
  234. NOTE:     The remote TNC should be capable of FIRMRNR opera-
  235.           tion.  This mode is operable with all TNCs  having
  236.           a  FIRMRNR settable to ON, and with  most  network
  237.           nodes.   If  the  remote TNC  is  not  capable  of
  238.           FIRMRNR  operation,  and if the channel  is  poor,
  239.           there  will be additional delays in  getting  data
  240.           passed between the TNCs.
  241.  
  242.  
  243.  
  244. MNonax25 ON|OFF                    Default: OFF
  245.                                           Display Group: M
  246.  
  247. Parameters:
  248.  
  249.      ON        Monitors all frames with valid CRC.
  250.  
  251.      OFF       Monitors  AX.25 Level 2 Protocol frames  with
  252.                no higher-level protocols (PID = F0).
  253.  
  254. When  OFF,  only  AX.25  Level 2  protocol  frames  will  be
  255. displayed.   Any packets with level 3 or level  4  protocols
  256. will  be  inhibited.   Thus, NET/ROM,  TCP/IP,  ROSE,  etc.,
  257. networking frames will not be displayed.  These frames often
  258. have  binary values buried in them which  cause  undesirable
  259. responses on a normal screen display.
  260.  
  261. When  ON,  any  packet or frame with a  valid  CRC  will  be
  262. displayed regardless of protocol.
  263.  
  264.  
  265.  
  266. RXCAL
  267.                                          Display Group: NONE
  268.  
  269. RXCAL  is  an  immediate command.  It is  used  for  precise
  270. alignment of the demodulator.  Briefly, after the  modulator
  271. tones  are set using the normal CALIBRATE  routines,  analog
  272. loopback  is  entered and RXCAL issued.  You then  tune  the
  273. demodulator  until  the CON and STA LEDs are  both  lit,  or
  274. slowly   alternate.    See  the  section   New   Calibration
  275. Procedures for details on using this command with a TAPR TNC
  276. 2.
  277.  
  278.  
  279.  
  280. SLots n                          Default: 3
  281.                                             Display Group: L
  282.  
  283. Parameters:
  284.  
  285.      n         0-127
  286.  
  287. SLOTS  specifies the number of "slots" from which to  choose
  288. when  deciding to access the channel.  For example, SLOTS  3
  289. means  there are three slots, each having a  probability  of
  290. 1/3 to be selected.  Each slot is DEADTIME long.  If SLOTS 0
  291. is chosen, the TNC will act as if SLOTS 1 had been selected.
  292.  
  293. Other  implementations  of this idea of channel  access  use
  294. "PERSISTENCE"  to decide the probability of  channel  access
  295. when  the channel is clear and "PPERSISTENCE" to  enable  or
  296. disable this feature.
  297.  
  298. A  low  value means a greater chance of attempting  to  send
  299. data  when  the channel is clear, and a higher  value  means
  300. less chance.  Normal AX.25 practice is to have every station
  301. jump  on the channel when it goes clear, virtually  assuring
  302. collisions and retries.
  303.  
  304. SLOTS  and its relation to the more common PPERSISTENCE  and
  305. PERSISTENCE commands are given below:
  306.  
  307. SLOTS     PPERSISTENCE   PERSISTENCE    Probability to XMIT
  308.  
  309.    1           OFF            255       Jump on = 100%
  310.    2           ON             127       50%
  311.    3           ON              85       33%
  312.    4           ON              63       25%
  313.    5           ON              51       20%
  314.  
  315. and so forth.
  316.  
  317. A  typical  value would be 2 or 3 for a channel with  a  few
  318. other  users and 5 to 7 for a fairly busy  channel.   Higher
  319. values than about 10 imply the channel is too busy and other
  320. frequencies should be used if available.
  321.  
  322. NOTE:     SLOTS is independent of ACKPRIOR.
  323.  
  324.  
  325.  
  326. STATUS
  327.                                          Display Group: NONE
  328.  
  329. STATUS is an immediate command.  It returns the acknowledged
  330. status  of the current outgoing packet link buffer.  If  all
  331. outgoing  packets  are  acknowledged,  STATUS  returns   'No
  332. Outstanding packets', otherwise it returns the  'Outstanding
  333. packets'   message.    Note   that   this   command    works
  334. independently of the RS-232 flow-control state of the TNC.
  335.  
  336. This command may be useful for special applications, like if
  337. you  can't see the STATUS LED on the TNC, or you  want  your
  338. computer to watch the status...
  339.  
  340.  
  341.  
  342. TXDELAYC n                     Default: 2
  343.                                            Display Group: T
  344.  
  345. Parameters:
  346.  
  347.      n         0-120  specifying additional  transmit  delay
  348.                time  added to TXdelay in terms of  CHARACTER
  349.                TIME  at  the current radio port  data  rate.
  350.                Flags  will  be sent during this time,  so  a
  351.                value of 1 is required as a minimum.
  352.  
  353. TXDELAYC  is  used  to  fine-tune  transmit  delay  after  a
  354. transmit command is issued and before data is sent.  Used in
  355. conjunction  with  TXDELAY, it allows a link to be  set  for
  356. maximum performance.
  357.  
  358. TXDELAY should be used to account for the time it takes  the
  359. radio  (the slower of this TNC's radio and the remote  TNC's
  360. radio) to switch between receive and transmit and allow  the
  361. receiving  unit's  data carrier detect  (DCD)  circuitry  to
  362. respond.   "0"  bytes are sent to allow the  remote  TNC  to
  363. synchronize to the data stream sent during TXDELAY.
  364.  
  365. TXDELAYC then sends flags to start the frame.  If TXDELAYC 0
  366. is  selected,  the TNC will act as if TXDELAYC  1  had  been
  367. chosen.
  368.  
  369. With this method of keying up, a user may operate at various
  370. HDLC data rates without having to reset TXDELAY if the  same
  371. radios are used.  The summation of TXDELAY and TXDELAYC will
  372. automatically adjust the keyup time for the varying rates.
  373.  
  374.  
  375. New Health Counters
  376.  
  377.  
  378. A number of counters have been added to TNC 2.  All of  them
  379. are  16  bits wide, and are ALWAYS initialized  to  0000  on
  380. power up or "RESTART".
  381.  
  382. These counters are displayed using the HEALTH option of  the
  383. DISPLAY command.
  384.  
  385.      o-  ASYFRERR:  Increases  when a character received  on
  386.                     the serial port has a framing error.   A
  387.                     large count may indicate problems in the
  388.                     serial  link  between the  TNC  and  the
  389.                     computer or terminal.
  390.  
  391.      o- ASYQOVER:   Increases  when  the TNC's  async  input
  392.                     buffer overruns.  A count greater than 0
  393.                     indicates  the  host  computer  is   not
  394.                     responding properly to flow control from
  395.                     the  TNC.  It also means that data  have
  396.                     been  lost, so you should take steps  to
  397.                     find  out why this is happening and  get
  398.                     it fixed!
  399.  
  400.      o- RCVDRNR:    Increases when this TNC receives an  RNR
  401.                     frame.  A large count is normal.
  402.  
  403.      o- RXABORT:    Increases  when an aborted frame is  re
  404.                     ceived from the HDLC controller.   Large
  405.                     counts are not uncommon.
  406.  
  407.      o- RXLENERR:   Increases  when a received frame  has  a
  408.                     length  error and indicates the TNC  has
  409.                     temporarily become confused.  It may  be
  410.                     a result of a bug in the SIO chip and  a
  411.                     count above 0 is no cause for alarm.
  412.  
  413.      o- RXRESYNC:   Indicates  the number of times  the  TNC
  414.                     has recovered from RXLENERR  conditions.
  415.                     In  firmware  prior to  1.1.7,  the  TNC
  416.                     would  simply  hang until  RESTARTed  or
  417.                     RESET.
  418.  
  419.      o- SENTRNR:    Increases  when  this TNC sends  an  RNR
  420.                     frame.  This is useful  for  determining
  421.                     the   effectiveness   of   the   FIRMRNR
  422.                     routines.
  423.  
  424. New Calibration Procedures
  425.  
  426. Modem Calibration
  427.  
  428. The TAPR TNC 2 contains a versatile,  user configurable  FSK
  429. modem that is suitable for both 1200 baud packet use as well
  430. as lower data rate use, such as 200 Hz shift 300 baud use on
  431. HF links.  Calibration of the modem is usually only required
  432. when  the  unit is initially put into operation or when  you
  433. want to change the modem characteristics.   You may want  to
  434. check  the calibration if you have difficulty connecting  to
  435. other  packet  stations,  but recalibration is normally  not
  436. necessary.
  437.  
  438. Calibration  of the TNC on-board modem  is  straightforward.
  439. First, determine the data rate at which you wish to operate.
  440. The  required shift may then be determined,  followed by the
  441. actual  FSK frequencies to use.   While you may select  from
  442. any tones in the normal audio range,  there are a few simple
  443. rules that may help.
  444.  
  445.  1.  The TNC only supports 300 baud and 1200 baud  operation
  446.      of the radio link using the on-board modem.   While the
  447.      modem is capable of operating at other data rates,  the
  448.      TNC  data-rate  generator circuit only supplies  clocks
  449.      for 300,  1200 and 9600 baud (9600 baud is for use with
  450.      an external modem).
  451.  
  452.  2.  Most  1200 baud operation uses 1000 Hz shift and  tones
  453.      of  1200 Hz and 2200 Hz.  These are the  default  tones
  454.      for which the TNC modem is optimized, using the  compo-
  455.      nents supplied in the kit.  However, 800 Hz shift  with
  456.      tones of 1300 Hz and 2100 Hz may provide improved oper-
  457.      ation.   This tone-pair is compatible with  TNCs  using
  458.      1000 Hz shift modems.
  459.  
  460.  3.  Most  HF operation below 28 MHz uses 300 baud,  200  Hz
  461.      shift FSK.   TAPR recommends 1600 Hz and 1800 Hz as the
  462.      modulator tone frequencies, but any pair of frequencies
  463.      with  this separation,  modulating an SSB  transmitter,
  464.      will  work.   If your demodulation center frequency  is
  465.      1700 Hz,  your transmissions will be readable  whenever
  466.      you  are able to copy the other station,  regardless of
  467.      his actual modulation frequencies.   Incidentally,  the
  468.      sideband may be chosen at will due to the nature of the
  469.      data, although most stations conventionally use LSB.
  470.  
  471. In  the  example below we will set up the modem  for  normal
  472. 1200 baud operation with 800 Hz shift.
  473.  
  474. The  software  calibration routine  compares  the  frequency
  475. being  calibrated against a reference signal.   The  desired
  476. frequency  is  specified by setting a count,  n,  using  the
  477. command CALSET.
  478.  
  479. For the modulator, determine the calibration count according
  480. to the following formula:
  481.  
  482.           n = (525,000 / f) + 1
  483.  
  484. where  f is the desired frequency  in  Hertz.   Substituting
  485. 1300 and 2100 Hz, we end up with:
  486.  
  487.           n = 405 (for 1300 Hz)
  488.           n = 251 (for 2100 Hz)
  489.  
  490. To  set  the  PLL demodulator, we  use  the  RXCAL  command,
  491. explained below.
  492.  
  493. Modulator Adjustment
  494.  
  495. The  next step is to preset the trimpots for the  modulator.
  496. When adjusting the trimpots,  you should hear a soft "click"
  497. when  the  element  is adjusted to the end  of  its  travel.
  498. Turning  the  element  past this point will  not  result  in
  499. damage to the trimpot;  however, it is suggested that you do
  500. not  make  a practice of turning the adjustment  screw  past
  501. this  point  too much.   Use a small-tipped  screwdriver  or
  502. special trimpot adjusting tool when adjusting the trimpots.
  503.  
  504. Preset  R77  20 turns counter-clockwise (CCW) or  until  you
  505. hear the element "click" at full CCW rotation.  R77 controls
  506. the  higher of the two modulator output tones and this  sets
  507. it to its maximum frequency.
  508.  
  509. Preset  R78  20 turns clockwise (CW) or until you  hear  the
  510. element "click" at full CW rotation.  R78 controls the lower
  511. of  the  two modulator output tones and this sets it to  its
  512. lowest frequency.
  513.  
  514. Turn  off the power to the TNC and remove it from its  cabi-
  515. net.   To protect the battery backed-up RAM,  be sure to set
  516. the TNC on a non-conducting surface -- a sheet of paper will
  517. do.   Attach your terminal and follow the standard  power-up
  518. procedure.  When you see the command mode prompt, enter
  519.  
  520.           cmd:CALSET 405
  521.  
  522. or  use the value appropriate for the lower modulator  tone.
  523. Next, enter
  524.  
  525.           cmd:CALIBRA
  526.  
  527. This  starts  the software calibration routine.   The  "com-
  528. mands" to the calibration routine are single characters, and
  529. require no carriage return.
  530.  
  531. Install  a push-on jumper at JMP9 pins 1 and 6 (the top  two
  532. pins of JMP9  nearest  C44) and  another  push-on  jumper at
  533. JMP4.
  534.  
  535. NOTE:     During  calibration the STA and CON LEDs are  used
  536.           as  frequency  indicators.  When the  STA  LED  is
  537.           glowing,  the  frequency is too  high,  go  lower.
  538.           When the CON LED is glowing, the frequency is  too
  539.           low, go higher.
  540.  
  541. Press the K key on your computer.  Either the STA or CON LED
  542. should illuminate.   Next,  press the space bar on your key-
  543. board and verify that the other LED (CON or STA) illuminates
  544. in  place  of  the one illuminated in  the  preceding  step.
  545. Press the space bar again until the CON LED is illuminated.
  546.  
  547. Slowly rotate the adjustment screw on trimpot R78 in the CCW
  548. direction until both the STA and CON LEDs  illuminate.   The
  549. LEDs  are a bit slow to respond,  so be careful when the STA
  550. LED begins to flicker.   You will probably notice a  portion
  551. of the adjustment when both LEDs illuminate; set the adjust-
  552. ment  screw to the center of this band.   If you go too far,
  553. only the STA LED will be illuminated; in this case, turn the
  554. adjustment screw CW.
  555.  
  556. When  both LEDs are steadily illuminated,  press the Q  key.
  557. Both  LEDs  should extinguish and the  command  mode  prompt
  558. should reappear.  The lower tone is now calibrated.
  559.  
  560. To calibrate the upper tone, enter
  561.  
  562.           cmd:CALSET 251
  563.  
  564. or  use the value appropriate for the higher modulator tone.
  565. Next, enter
  566.  
  567.           cmd:CALIBRA
  568.  
  569. Now press the K key.   Either the CON or the STA LED  should
  570. illuminate.  Tap the space bar until the STA LED glows.
  571.  
  572. Slowly  rotate the adjustment screw of trimpot R77 CW,  fol-
  573. lowing the instructions above for setting R78.  Continue the
  574. adjustment until both the STA and CON LEDs glow steadily.
  575.  
  576. When  both LEDs are steadily illuminated,  press the Q  key.
  577. Both  LEDs  should extinguish and the  command  mode  prompt
  578. should reappear.   Remove the jumpers at JMP9 pins 1 & 6 and
  579. at JMP4.
  580.  
  581. Demodulator Adjustment
  582.  
  583. NOTE:     Do  not remove the jumper at JMP8 for  demodulator
  584.           calibration!
  585.  
  586. To calibrate the PLL demodulator, preset R79 20 turns clock-
  587. wise  (CW) or until you hear the element "click" at full  CW
  588. rotation.   Place  a jumper across JMP9 pins 3  and  4  (the
  589. lowest two pins -- these are the two pins nearest the  silk-
  590. screen legend "C43").  Install a push-on jumper at JMP4  (to
  591. disable  the transmitter PTT watchdog timer) and another  at
  592. JMP7 (to establish "analog loopback").  Enter
  593.  
  594.           cmd:RXCAL
  595.  
  596. at the computer or terminal keyboard.
  597.  
  598. Now press the K key.  The STA LED should illuminate.
  599.  
  600. Slowly rotate the adjustment screw of R79 CCW until both the
  601. STA  and CON LEDs glow.  This is a very difficult  condition
  602. to achieve, partly because the indicator is quite  sensitive
  603. and  partly because the LEDs lag the adjustment by a  second
  604. or  two.   However,  if you establish the  position  of  the
  605. trimpot  where the LEDs toggle and leave R79 set  to  within
  606. about 1/4 turn of that position there will be no degradation
  607. in performance.
  608.  
  609. Type Q and note that the command mode prompt reappears.  Re-
  610. move  the jumpers at JMP4, JMP7 and JMP9.  Your TNC 2  modem
  611. is now calibrated to the tones you have selected.
  612.  
  613. Other Considerations
  614.  
  615. If  you are operating at a data rate other than  1200  baud,
  616. the  loop timing components on your demodulator will not  be
  617. optimum.  The table below lists the component values for the
  618. two most common FSK pairs as well as CALSET parameters.
  619.  
  620.                Modem Calibration Parameters.
  621.  
  622.            Data rate      1200 baud      300 baud
  623.            Shift           800 Hz        200 Hz
  624.            Center Freq    1700 Hz        1700 Hz
  625.            Upper Freq     2100 Hz        1800 Hz
  626.            Lower Freq     1300 Hz        1600 Hz
  627.  
  628.            C54            2200 pF        0.01 uF
  629.            R93            47.5 k         226 k
  630.  
  631.            CALSET Parameters
  632.  
  633.            High Tone (R77) 251           293
  634.            Low Tone  (R78) 405           329
  635.  
  636.      NOTE:  Components used for R93 and C54 should have
  637.      temperature-stable characteristics.
  638.  
  639. Finally,  it  is best to match the IF bandwidth of your  re-
  640. ceiver to the data rate you will operate.   For 300 baud  HF
  641. operation,  a  filter of about 500 Hz bandwidth is  optimum;
  642. any  CW filter wider than this should be better than an  SSB
  643. bandwidth filter!
  644.  
  645. Prioritized Acknowledgment - An Overview
  646.  
  647. THE IDEA
  648.  
  649. The  idea  behind the  prioritized  acknowledgment  (PriACK)
  650. protocol is quite simple.  Acknowledgments (ACKs) get prior-
  651. ity  access  to  the  channel so that  time  is  not  wasted
  652. retrying packets that have already been correctly copied  by
  653. the remote TNC.  In normal AX.25 practice, for a variety  of
  654. reasons, the ACK is often not received within the time limit
  655. defined by the FRACK (T1) protocol timer.
  656.  
  657. In  fact, because "channel access" methods are  not  clearly
  658. defined  in the AX.25 Level Two Version 2.0  protocol  docu-
  659. ment,  the  present protocol is more likely  to  synchronize
  660. collisions  with acknowledgment packets than with any  other
  661. type of packet!
  662.  
  663. THE PROBLEM
  664.  
  665. When  a channel becomes clear, if your TNC has something  to
  666. send, it will immediately send it.  Unfortunately, if anyone
  667. else's TNC has something to send, it will also "jump on" the
  668. channel  as  soon as it becomes clear.  The result  is  col-
  669. lisions  and retries.  Only after a collision does the  pre-
  670. sent  protocol suggest using random backoff.  Thus, an  ack-
  671. nowledgment to a just-received packet is almost assured of a
  672. collision-and-retry sequence, even thought the TNC correctly
  673. received the packet.  This will usually cause the TNC  which
  674. is awaiting the ACK to time out and re-send the data.
  675.  
  676. To this collision synchronization mechanism, AX.25 Level Two
  677. Version  2.0 adds a propensity to cause even ACKs which  are
  678. not  from  hidden terminals, and thus  less  susceptible  to
  679. collision,  to be delayed beyond even generous  FRACK  timer
  680. settings when the channel gets busy.
  681.  
  682. Once  FRACK  times  out, even if the ACK  finally  makes  it
  683. through  before  the retry is sent, the original  packet  is
  684. retried  anyway.  This wastes a lot of time which  could  be
  685. better  used clearing the channel of some of the  legitimate
  686. offered load.
  687.  
  688. This  feature of AX.25 Level Two protocol accounts for  much
  689. of  the abysmal performance of the currently popular  NETROM
  690. and  THENET  nodes when used with  omnidirectional  antennas
  691. systems.
  692.  
  693. HOW IT WORKS
  694.  
  695. PriACK  protocol  avoids the above problems by  giving  ACKs
  696. priority access to the channel.  It does this in such a  way
  697. that  even  ACKs coming from hidden  terminals  are  usually
  698. protected from collision.
  699.  
  700. Standard  AX.25  protocol gives a limited  version  of  this
  701. priority access only to digipeated frames through the  DWAIT
  702. timer.
  703.  
  704. Ack prioritization works with slotted channel access in  the
  705. following way:
  706.  
  707. 1.   Response frames (ACKs) are always sent immediately upon
  708.      receipt  of a valid packet.  Ultimately, not  even  DCD
  709.      will  be checked for sending an ACK.  However, in  this
  710.      release DCD will still hold an ACK off the channel.
  711.  
  712. 2.   Stations  queued up to access the channel  but  waiting
  713.      for a channel busy condition (DCD true) to clear,  will
  714.      start a slotted access procedure only after enough time
  715.      for  a response frame to clear the channel  has  trans-
  716.      pired (ACKTIME).  This is true even if the TNC  waiting
  717.      to use the channel cannot hear the ACK being sent.
  718.  
  719. 3.   Slot  time windows (DEADTIME) are set large  enough  to
  720.      ensure the local TNC will be able to accurately  deter-
  721.      mine  if another detectable station has started  trans-
  722.      mitting in any slot preceding the slot selected by  the
  723.      local TNC.  This prevents two TNCs which have  selected
  724.      adjacent slots from colliding.
  725.  
  726. As  you can see, under this protocol there will never  be  a
  727. condition where an ACK is delayed from being sent beyond the
  728. FRACK  timer limitation.  However, the FRACK timer is  still
  729. active  and  must be set to a value that is long  enough  to
  730. allow  time for (MAXFRAME * PACLEN) + ACKWAIT to expire  be-
  731. fore  FRACK  does.  This time will depend on the  radio  and
  732. radio  channel data rate in use.  The TNC knows that  if  it
  733. doesn't see the ACK immediately when expected, it is probab-
  734. ly never going to see it.  (See discussion of new parameters
  735. below for definition of ACKWAIT.)
  736.  
  737. Forcing a channel access delay for all stations on the chan-
  738. nel  which are waiting for a chance to transmit allows  ACKs
  739. from hidden terminals to get back to the expecting  station.
  740. This clears that traffic from the offered channel load.   If
  741. the  packet was indeed copied and ACKed, further retries  of
  742. the same information will not be necessary.
  743.  
  744. NEW PARAMETERS
  745.  
  746. There   are  several  new  parameters  needed   for   PriACK
  747. operation.   See the command description elsewhere  in  this
  748. document for their meanings and settings.
  749.  
  750. 1.  ACKPRIOR
  751.  
  752. 2.  DEADTIME
  753.  
  754. 3.  ACKTIME
  755.  
  756. 4.  SLOTS
  757.  
  758. 5.  ACKWAIT (not directly user settable)
  759.  
  760. This  timer  actually  consists  of the  sum  of  ACKTIME  +
  761. DEADTIME.   It  represents the time the queued up  TNC  will
  762. wait before transmitting if it has selected the first  slot.
  763. This  allows time for a hidden station's ACK to be  sent  on
  764. the channel.
  765.  
  766. It  is  split into two timers because it has  two  unrelated
  767. components.  One is related only to the data rate being used
  768. on the channel (ACKTIME).  The other is related only to  the
  769. absolute  time  the radios and TNC DCD circuits  require  to
  770. determine that a transmitter is active after PTT is asserted
  771. (DEADTIME).
  772.  
  773. OTHER RELATED PARAMETERS
  774.  
  775. Several of the "standard" TNC parameters will affect  PriACK
  776. operation.   Most  of these are parameters in  TNCs  on  the
  777. channel which are not using PriACK.
  778.  
  779. FRACK
  780.  
  781. FRACK  must  be  set  correctly in  any  TNC  regardless  of
  782. protocol.
  783.  
  784. FRACK should be set to a value which allows time for the TNC
  785. to  send  its packet and receive the ACK.  This  value  will
  786. depend  on the settings being used for PACLEN and the  radio
  787. port  data rate.  This is because, in many TNCs,  the  FRACK
  788. timer  starts at the beginning of the packet rather than  at
  789. the  end!  Thus, it is best to set FRACK to its  worst  case
  790. value for whatever data rate you are using on the radio port
  791. and still allow for MAXFRAME 7 PACLEN 255 packets to be sent
  792. and  allow other non-PriACK stations to collide.   This  way
  793. you  can make adjustments to PACLEN without having to  worry
  794. about interaction with the setting of FRACK.
  795.  
  796. FRACK  should be set to 8 for 1200 baud work and 16 for  300
  797. baud operation.
  798.  
  799. RESPTIME
  800.  
  801. RESPTIME should be set to 0 in your TNC when running PriACK.
  802. With  proper  DCD  operation, RESPTIME 0 will  work  in  any
  803. event.
  804.  
  805. If there are some radios on the packet channel with  abysmal
  806. transmit-to-receive  recovery  times that cannot  copy  your
  807. ACKs,  you may have to increase your TXDELAY or use a  value
  808. of  RESPTIME greater than 0 to accomodate them  until  those
  809. stations can replace their slow radios with more  acceptable
  810. ones.
  811.  
  812. DWAIT
  813.  
  814. DWAIT  is ignored when running PriACK. However, when  PRiACK
  815. is  off, or if you are using a TNC which does not  yet  have
  816. PriACK capability, DWAIT should be set equal to DEADTIME, or
  817. 33 (330 mSec) for the default.
  818.  
  819. TXDELAY
  820.  
  821. TXDELAY should be set to allow for the slowest radio in  the
  822. channel.  It should be the same as or greater than  DEADTIME
  823. and  DWAIT.   The default of 33 (330 mSec) is  adequate  for
  824. most work.
  825.  
  826. INITIAL PARAMETER SETTINGS SUMMARY
  827.  
  828. The settings for use at 1200 baud on a VHF FM channel are:
  829.  
  830. ACKPRIOR ON
  831. ACKTIME  14
  832. DEADTIME 33
  833. DWAIT    33
  834. FRACK     8
  835. MAXFRAME  1-7  depending on channel quality
  836. PACLEN   64-255 depending on channel quality
  837. RESPTIME  0    (If  you  require a nonzero  value  for  this
  838.                parameter   in   order  to   prevent   ACKing
  839.                individual packets in a MAXFRAME greater than
  840.                1  blast,  your DCD circuit is  not  working.
  841.                Please get it fixed.)
  842. SLOTS     3
  843. TXDELAY  33
  844.  
  845. The  settings to use for 300 baud work on a linear  mode  HF
  846. channel are:
  847.  
  848. ACKPRIOR ON
  849. ACKTIME  52
  850. DEADTIME  8
  851. DWAIT     8
  852. FRACK    16
  853. MAXFRAME  1
  854. PACLEN   32 to 128 depending on channel quality
  855. RESPTIME  0
  856. SLOTS     3
  857. TXDELAY   8